;Assembler header file for OSFind
;written by DefMod (Oct 26 2000) on Tue Dec 12 18:10:38 2000
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 30 May 1995

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET OSLib:oslib.Hdr.Types"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_OS
        GBLS    Get_OS
        ]
        [       :LNOT: :DEF: OS_Hdr
Get_OS                          SETS    "GET OSLib:oslib.Hdr.OS"
        |
Get_OS                          SETS    ""
        ]
        $Get_OS

        [       :LNOT: :DEF: Get_FileSwitch
        GBLS    Get_FileSwitch
        ]
        [       :LNOT: :DEF: FileSwitch_Hdr
Get_FileSwitch                  SETS    "GET OSLib:oslib.Hdr.FileSwitch"
        |
Get_FileSwitch                  SETS    ""
        ]
        $Get_FileSwitch

        [       :LNOT: :DEF: OSFind_Hdr
        GBLS    OSFind_Hdr

;Symbols for constants
OSFind_Path                     *       &1
OSFind_PathVar                  *       &2
OSFind_NoPath                   *       &3
OSFind_ErrorIfAbsent            *       &8
OSFind_ErrorIfDir               *       &4

;Symbols for structure offsets and sizes
OSFind_Flags                    *       Bits


;Symbols for SWI's and SWI reason codes
XOS_Find                        *       &2000D
OS_Find                         *       &D

OSFind_Openin                   *       &40
   ;Entry
   ;  R0 = &40 :OR: flags (OSFind_Flags)
   ;  R1 -> file_name (String)
   ;  R2 -> path (String)
   ;Exit
   ;  R0 = file (OS_F)

OSFind_OpeninW                  *       &40
   ;Entry
   ;  R0 = &40 :OR: flags (OSFind_Flags)
   ;  R1 -> file_name (String)
   ;  R2 -> path (String)
   ;Exit
   ;  R0 = file (OS_FW)

OSFind_Openout                  *       &80
   ;Entry
   ;  R0 = &80 :OR: flags (OSFind_Flags)
   ;  R1 -> file_name (String)
   ;  R2 -> path (String)
   ;Exit
   ;  R0 = file (OS_F)

OSFind_OpenoutW                 *       &80
   ;Entry
   ;  R0 = &80 :OR: flags (OSFind_Flags)
   ;  R1 -> file_name (String)
   ;  R2 -> path (String)
   ;Exit
   ;  R0 = file (OS_FW)

OSFind_Openup                   *       &C0
   ;Entry
   ;  R0 = &C0 :OR: flags (OSFind_Flags)
   ;  R1 -> file_name (String)
   ;  R2 -> path (String)
   ;Exit
   ;  R0 = file (OS_F)

OSFind_OpenupW                  *       &C0
   ;Entry
   ;  R0 = &C0 :OR: flags (OSFind_Flags)
   ;  R1 -> file_name (String)
   ;  R2 -> path (String)
   ;Exit
   ;  R0 = file (OS_FW)

OSFind_Close                    *       &0
   ;Entry
   ;  R0 = &0
   ;  R1 = file (OS_F)

OSFind_CloseW                   *       &0
   ;Entry
   ;  R0 = &0
   ;  R1 = file (OS_FW)

FindV                           *       &D

UpCallFind_CreateOpenup         *       &101
   ;Entry
   ;  R0 = &3
   ;  R1 -> file_name (String)
   ;  R2 = file (OS_F)
   ;  R6 -> special (String)
   ;  R8 = fs_info (FileSwitch_FSInfo)
   ;  R9 = &101

UpCallFind_CreateOpenupW        *       &101
   ;Entry
   ;  R0 = &3
   ;  R1 -> file_name (String)
   ;  R2 = file (OS_FW)
   ;  R6 -> special (String)
   ;  R8 = fs_info (FileSwitch_FSInfo)
   ;  R9 = &101

UpCallFind_Openup               *       &102
   ;Entry
   ;  R0 = &3
   ;  R1 -> file_name (String)
   ;  R2 = file (OS_F)
   ;  R6 -> special (String)
   ;  R8 = fs_info (FileSwitch_FSInfo)
   ;  R9 = &102

UpCallFind_OpenupW              *       &102
   ;Entry
   ;  R0 = &3
   ;  R1 -> file_name (String)
   ;  R2 = file (OS_FW)
   ;  R6 -> special (String)
   ;  R8 = fs_info (FileSwitch_FSInfo)
   ;  R9 = &102

UpCallFind_Close                *       &103
   ;Entry
   ;  R0 = &3
   ;  R1 = file (OS_F)
   ;  R8 = fs_info (FileSwitch_FSInfo)
   ;  R9 = &103

UpCallFind_CloseW               *       &103
   ;Entry
   ;  R0 = &3
   ;  R1 = file (OS_FW)
   ;  R8 = fs_info (FileSwitch_FSInfo)
   ;  R9 = &103

        ]
        END
